﻿#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
//[1658. 将 x 减到 0 的最小操作数](https://leetcode.cn/problems/minimum-operations-to-reduce-x-to-zero/)
//class Solution {
//public:
//	int minOperations(vector<int>& nums, int x)
//	{
//		int sum = 0;
//		for (auto t : nums)
//		{
//			sum += t;
//		}
//		if (sum < x)
//		{
//			return -1;//处理全部数据不大于x;
//		}
//		int target = sum - x;
//		int ret = -1;
//		int tmp = 0;
//
//		// 如果 sum < target ，右移右指针，直⾄变量和⼤于等于 target ，或右指针已经移到头；
//		// ii. 如果 sum > target ，右移左指针，直⾄变量和⼩于等于 target ，或左指针已经移到头；
//		// iii. 如果经过前两步的左右移动使得 sum == target ，维护满⾜条件数组的最⼤⻓度，并让下个元素进⼊窗⼝；
//		// d. 循环结束后，如果 maxLen 的值有意义，则计算结果返回；否则，返回 -1 。
//		for (int left = 0, right = 0; right < nums.size(); right++)
//		{
//			tmp += nums[right];
//			while (tmp > target)
//			{
//				tmp -= nums[left++];
//			}
//
//			if (tmp == target)
//			{
//				ret = max(ret, right - left + 1);
//			}
//		}
//
//		if (ret == -1)
//		{
//			return -1;
//		}
//		return nums.size() - ret;
//	}
//};

